Typical Modem Architectures consist of a Controller, a Datapump and hardware circuitry also called the Direct Access Arrangement (DAA), to connect to a telephone network. The Controller implements Error Control, Data Compression and digital terminal equipment (DTE) Command/Response interface.
The Datapump is arranged to perform a Datapump function which is usually specified by one of the modem standards ratified by national/international standardisation bodies, which is henceforth referred to as a Modulation function. The specific Datapump function in operation in a modem can be one of a number of Modulation functions. The Modulation functions are usually divided into phases called the Handshake phase and the Data phase. The Handshake phase pertains usually to protocol negotiation (like V.8, V.8bis), channel probing (measurement of channel characteristic), training of modem adaptive elements, and communication of modem parameters. Upon completion of the Handshake Phase, the modem enters the Data phase. These phases are usually separated by inactivity intervals.
The Datapump function (Modulation function in operation) transmits/receives data from a remote modem. The Datapump function usually requires a Digital Signal Processor (DSP) to perform the various numerical operations required for signal generation and reception. Some applications use the DSP power to accommodate the Controller function.
DSP based systems perform numerical operations on data and are optimised for such operations. A bottleneck in extracting the maximum performance is the limitation imposed by access times to memory. This is usually circumvented by providing on-chip RAM/ROM to supplement the basic DSP core. ROM based solutions preclude upgradability. Downloadable Modem architectures employ on-chip RAM for easy upgradability. This on-chip RAM is expensive compared to slower external memories like SDRAM, Flash etc.
A typical Datapump function has significant internal memory requirements. A straightforward implementation leads to an expensive single chip solution for Downloadable Modem architectures. This implies a large on-chip RAM requirement if all the program code corresponding to the Handshake and Data phase of the Modulation function were loaded in on-chip RAM.
An alternative is to provide program code for the Modulation function in external RAM, in order to free up on-chip memory and minimise costs for a single chip DSP. FIG. 1 is an example of such an architecture, as used in current Modem application systems. The DSP 1 performs the Datapump function. The program code for the specific Modulation function used during a modem connection exists in external RAM 2. A slow external memory 3 stores the program code for the whole modem application. This slow external memory 3 is usually a FLASH memory, and is provided as a feature for code-version upgradability. Depending on the Modulation function used, the program code for the Datapump function is loaded into external RAM 2. The memory requirements of this Modulation function code is high because the entire code corresponding to this function is loaded. A significant problem associated with the architecture of FIG. 1 is that execution of the modulation function is slowed, as compared to an on-chip DSP RAM architecture, due to the external RAM being generally slower and interfacing delays between the DSP chip and the external RAM. The present invention seeks to maximise efficiency of the DSP operation by utilizing timing constraints of operations performed by the DSP.
An example of dynamically loading or unloading tasks into instruction RAM is disclosed in EP 0 772 370. However that reference makes no mention of any timing constraints for the downloading operations performed by the DSP manager. That is likely because the downloading scheme does not require it. The ability of the DSP manager to allocate space in the data RAM in response to a request from a DSP task does not necessarily imply that inactivity timing constraints are utilized. This is because allocating space in data RAM is different from a downloading operation, it does not involve the transfer of program code from the external PC RAM to the DSP RAM.